var app = getApp();
const {
  getOrder,
  getchanpin,
  getTree,
  uploadimg,
  addData,
  getdbsqb,
  getdbcd,
  addpd,
  getcplist,
  t_yslist,
  t_cghtlist
} = require('../../utils/api')
const {
  baseUrl
} = require('../../nev').prod

Page({
  data: {
    //权限切换 1司机 2站点
    quanxian: '',
    page: 1, //当前第几页
    pageSize: 10, //一页展示几条
    loading: false, //是否展示 “正在加载” 字样
    loaded: false, //是否展示 “已加载全部” 字样
    site: '',
    files: [],
    dblblist: [],
    dbcdlist: [],
    dbcplist: [],
    // 日期选择控制
    showDatePicker: false,
    minDate: new Date(new Date().setHours(0, 0, 0, 0)).getTime(), // 当天零点
    currentDate: new Date().getTime(),
    applyDate: '', // 显示用字段
    applyDate2: '', // 显示用字段
    applyDatecd: '', // 显示用字段
    // 日期格式化方法
    formatter(type, value) {
      if (type === 'year') return `${value}年`;
      if (type === 'month') return `${value}月`;
      if (type === 'day') return `${value}日`;
      return value;
    },
    chanpinFlag: false,
    productPickerVisible: false, // 控制弹窗显示
    productPickerVisibledb: false, // 控制弹窗显示
    productPickerVisiblecd: false, // 控制弹窗显示
    productPickerVisiblecp: false, // 控制弹窗显示
    products: [], // 产品列表数据源
    formData: {
      f_splx: '1',
      f_j5kr0nqtf7k: '1',
      productName: '', // 当前选中值
      f_unit: '1',
      f_dbfj: []
    },
    formDatas: {
      f_pdfl: '1',
      f_fwfy: '',
    },
    f_sqsl: '',
    f_ytsm: '',
    f_fwfy: '',
    f_ccdd: '',
    f_mdd: '',
    f_omh6xzwv3ln: '',
    f_xkc: '',
    siteCascaderVisible: false,
    siteCascaderVisible1: false,
    selectedSite: '',
    selectedSite1: '',
    orders: [],
    areaList: [],
    fieldNames: {
      text: 'f_erjzd',
      value: 'id',
      children: 'children',

    },
    cascaderValue: [],
    fileList: [],
    sqTxt: '',
    srTxt: '',
    bdbzhandian:'2'
  },
  onShow: function () {

  },

  //站点级联选择器列表获取
  getZhandian() {
    let data = {
      pageSize: 200,
      tree: true,
      filter: {}
    }
    // 修改接口回调（第81行附近）
    getTree(data).then(res => {
      this.setData({
        areaList: res.data // 使用转换后的数据
      })
    })
  },
  // 显示级联选择器
  showSiteCascader() {
    this.setData({
      siteCascaderVisible: true
    })
    this.getZhandian()
  },
  showSiteCascader1() {
    this.setData({
      siteCascaderVisible1: true
    })
    this.getZhandian()
  },

  // 确认选择
  onSiteConfirm(e) {
    const {
      selectedOptions
    } = e.detail
    const sitePath = selectedOptions.map(opt => opt.f_erjzd).join('/')
    this.setData({
      selectedSite: sitePath,
      'formData.f_sqszdmc': selectedOptions[selectedOptions.length - 1], // 存储最后级数据
      siteCascaderVisible: false
    })
    // console.log(this.formData)
  },
  // 确认选择
  onSiteConfirm1(e) {
    const {
      selectedOptions
    } = e.detail
    const sitePath = selectedOptions.map(opt => opt.f_erjzd).join('/')
    this.setData({
      selectedSite1: sitePath,
      'formData.f_of0cs7r9chu': selectedOptions[selectedOptions.length - 1], // 存储最后级数据
      siteCascaderVisible1: false
    })
    // console.log(this.formData)
  },
  onSiteChange(e) {
    console.log('点击完成', e)
    const {
      selectedOptions
    } = e.detail
    const sitePath = selectedOptions.map(opt => opt.f_erjzd).join('/')
    this.setData({
      selectedSite: sitePath,
      'formData.f_sqszdmc': selectedOptions[selectedOptions.length - 1], // 存储最后级数据
      siteCascaderVisible: false
    })
  },
  onSiteChange1(e) {
    console.log('点击完成', e)
    const {
      selectedOptions
    } = e.detail
    const sitePath = selectedOptions.map(opt => opt.f_erjzd).join('/')
    this.setData({
      selectedSite1: sitePath,
      'formData.f_of0cs7r9chu': selectedOptions[selectedOptions.length - 1], // 存储最后级数据
      siteCascaderVisible1: false
    })
  },

  // 取消选择
  onSiteCancel() {
    console.log('关闭')
    this.setData({
      siteCascaderVisible: false
    })
  },
  onSiteCancel1() {
    console.log('关闭')
    this.setData({
      siteCascaderVisible1: false
    })
  },

  // ...
  getOrderList() {
    var that = this; // //防止this指向问题
    const data = {
      page: that.data.page,
      pageSize: '20',
      appends: "f_team",
      filter: {
        "$and": [{
          "f_status": {
            "$eq": "2"
          }
        }]
      }
    }
    getOrder(data).then(res => {
      if (res.data.length > 0) {
        that.data.page++
        if (that.data.orders.length > 0) {
          let orders = that.data.orders.concat(res.data)
          that.setData({
            orders: orders
          })
        } else {
          that.setData({
            orders: res.data
          })
        }
        //如果列表数据条数小于总条数，隐藏 “正在加载” 字样，显示 “已加载全部” 字样
        if (res.data.length < that.data.pageSize) {
          that.setData({
            loading: false,
            loaded: true,
          });
        }
      } else {
        that.setData({
          orders: res.data
        })
        that.setData({
          loaded: true, //显示 “没有数据” 字样 
          loading: false, //隐藏 “正在加载” 字样.
          orders: []
        });
      }
    })
  },
  // 触底函数---上拉加载
  onReachBottom() {
    let that = this; //防止this指向问题
    if (!that.data.loading) {
      that.setData({
        loading: true, //加载中
        loaded: false //是否加载完所有数据
      });
    }
    //延时调用接口
    setTimeout(function () {
      that.getOrderList();
    }, 500)
  },
  //上拉函数---下拉刷新
  onPullDownRefresh() {
    let that = this
    that.data.orders = []
    wx.showNavigationBarLoading() //在标题栏中显示加载圈圈
    that.setData({
      page: 1
    }); //重置页码
    // console.log('回调函数sss')
    that.getOrderList()
    setTimeout(function () {
      wx.showToast({
        title: '刷新成功',
        icon: 'none',
        duration: 1000
      })
      wx.hideNavigationBarLoading() //完成停止加载
      wx.stopPullDownRefresh() //停止下拉刷新
    }, 1000)
    // that.getOrderList(function(res) {
    //   console.log('回调函数',res)
    // })
    // that.getOrderList().then(res=>{
    //   console.log('回调函数qqq',res)
    // })
    // this.getOrderList().then(res => {
    // if (res.data) {
    // setTimeout(function () {
    //   wx.showToast({
    //     title: '刷新成功',
    //     icon: 'none',
    //     duration: 1000
    //   })
    //   wx.hideNavigationBarLoading() //完成停止加载
    //   wx.stopPullDownRefresh() //停止下拉刷新
    // }, 1000)
    // } else if (!res.data) {
    //   setTimeout(function () {
    //     wx.showToast({
    //       title: '刷新失败',
    //       icon: 'none',
    //       duration: 1000
    //     })
    //     wx.hideNavigationBarLoading() //完成停止加载
    //     wx.stopPullDownRefresh() //停止下拉刷新
    //   }, 1000)
    // }
    // })
  },
  //调拨申请列表获取
  dbsqlist() {
    let data = {
      pageSize: 200,
      filter: {
        "$and": [{
          "f_shzt": {
            "$eq": "2"
          }
        }]
      }
    }
    // 修改接口回调（第81行附近）
    getdbsqb(data).then(res => {
      this.setData({
        dblblist: res.data // 使用转换后的数据
      })
    })
  },
  //运输合同申请列表
  yssqlist() {
    let data = {
      pageSize: 200,
      filter: {}
    }
    // 修改接口回调（第81行附近）
    t_yslist(data).then(res => {
      this.setData({
        dblblist: res.data // 使用转换后的数据
      })
    })
  },
  //运输合同申请列表
  xssqlist() {
    let data = {
      pageSize: 200,
      filter: {
        "$and": [{
          "f_htlx": {
            "$eq": "1"
          }
        }, {
          "f_type": {
            "$eq": "2"
          }
        }]
      }
    }
    // 修改接口回调（第81行附近）
    t_cghtlist(data).then(res => {
      this.setData({
        dblblist: res.data // 使用转换后的数据
      })
    })
  },
  showProductPickerdbsq() {
    // 实现产品选择逻辑
    this.setData({
      productPickerVisibledb: true
    })
  },

  // 运输列表确认选择
  onProductConfirmdblistys(e) {
    console.log(e)
    const name = e.detail.value.f_name
    this.setData({
      'formDatas.f_nameys': name,
      'formDatas.f_yunshu': e.detail.value,
      productPickerVisibledb: false,
    })
  },
  // 销售列表确认选择
  onProductConfirmdblistxs(e) {
    console.log(e)
    const name = e.detail.value.f_name
    this.setData({
      'formDatas.f_namexs': name,
      'formDatas.f_7vrj4a4ewib': e.detail.value,
      productPickerVisibledb: false,
    })
  },
  // 调拨列表确认选择
  onProductConfirmdblist(e) {
    console.log(e)
    const value = e.detail.value.f_ytsm
    const name = e.detail.value.f_omh6xzwv3ln
    this.setData({
      'formDatas.f_omh6xzwv3ln': name,
      'formDatas.f_ytsm': value,
      'formDatas.f_dbnr': e.detail.value,
      productPickerVisibledb: false,
    })
  },
  //调拨申请列表获取
  dbcllist() {
    let data = {
      pageSize: 200,
      filter: {}
    }
    // 修改接口回调（第81行附近）
    getdbcd(data).then(res => {
      this.setData({
        dbcdlist: res.data // 使用转换后的数据
      })
    })
  },
  //调拨申请列表获取
  getcp(item) {
    let data = {
      pageSize: 200,
      page: 1,
      appends: 'team,f_head,f_tail,f_driver,',
      sort: '-id',
      filter: {
        "$and": [{
          "f_status": {
            "$eq": "1"
          }
        }, {
          "team": {
            "f_name1": {
              "$includes": item
            }
          }
        }]
      }
    }
    console.log(data)
    // 修改接口回调（第81行附近）
    getcplist(data).then(res => {
      this.setData({
        dbcplist: res.data // 使用转换后的数据
      })
    })
  },
  showProductPickercd() {
    // 实现产品选择逻辑
    this.setData({
      productPickerVisiblecd: true
    })
  },
  // 车辆列表确认选择
  onProductConfirmcdlist(e) {
    console.log(e)
    const value = e.detail.value.f_name1
    //获取内部外部车队的接口
    this.getcp(value)
    this.setData({
      'formDatas.f_name1': value,
      'formDatas.f_team': e.detail.value,
      productPickerVisiblecd: false,
    })
  },
  showProductPickercp() {
    // 实现产品选择逻辑
    this.setData({
      productPickerVisiblecp: true
    })
  },
  // 车牌列表确认选择
  onProductConfirmcplist(e) {
    console.log(e)
    const value = e.detail.value.f_name
    this.setData({
      'formDatas.f_name': value,
      'formDatas.f_7txglt0t8km': e.detail.value,
      productPickerVisiblecp: false,
    })
  },
  //派单选择是运输合同或者调拨
  paidanonChange(e) {
    this.setData({
      'formDatas.f_pdfl': e.detail,
    })


    if (e.detail == '1') {
      this.yssqlist() //获取运输列表
      this.setData({
        'formDatas.f_yunshu': null,
        'formDatas.f_7vrj4a4ewib': null,
        'formDatas.f_dbnr': null,
        'formDatas.f_nameys': '',
      })
      console.log(this.data.formDatas)
    } else if (e.detail == '2') {
      this.dbsqlist() //获取调拨列表
      this.setData({
        'formDatas.f_yunshu': null,
        'formDatas.f_7vrj4a4ewib': null,
        'formDatas.f_dbnr': null,
        'formDatas.f_omh6xzwv3ln': '',
      })
      console.log(this.data.formDatas)
    } else if (e.detail == '3') {
      this.xssqlist() //获取调拨列表
      this.setData({
        'formDatas.f_yunshu': null,
        'formDatas.f_7vrj4a4ewib': null,
        'formDatas.f_dbnr': null,
        'formDatas.f_namexs': '',
      })
      console.log(this.data.formDatas)
    }
  },
  showConfirmDialogcd() {
    wx.showModal({
      title: '确认提交',
      content: '您确定要提交此单吗？',
      confirmText: '确定提交',
      cancelText: '再想想',
      success: (res) => {
        if (res.confirm) {
          this.handleRealAcceptcd()
        }
      }
    })
  },
  handleRealAcceptcd() {
    // 'formDatas.f_pdfl': e.detail,
    // this.data.formDatas.f_pdfl = '3'
    this.data.formDatas.f_status = '2'
    this.data.formDatas.f_fwfy = this.data.f_fwfy
    this.data.formDatas.f_ccdd = this.data.f_ccdd
    this.data.formDatas.f_mdd = this.data.f_mdd
    // this.data.formDatas.f_pdfl = this.data.f_mdd
    this.data.formDatas.f_date = this.data.applyDatecd
    this.data.formDatas.triggerWorkflows = 'weioikqfbzp'
    console.log(this.data.formDatas)
    addpd(this.data.formDatas).then(res => {
      wx.switchTab({
        url: '/pages/list/list' // 根据实际路径调整，需确保该路径已在 app.json 的 tabBar.list 中注册
      });
    }).catch(res => {

    })
  },


  showConfirmDialog() {
    wx.showModal({
      title: '确认提交',
      content: '您确定要提交此申请单吗？',
      confirmText: '确定提交',
      cancelText: '再想想',
      success: (res) => {
        if (res.confirm) {
          this.handleRealAccept()
        }
      }
    })
  },
  handleRealAccept() {
    this.data.formData.f_sqsj = this.data.applyDate
    this.data.formData.f_qwdhsj = this.data.applyDate2
    this.data.formData.f_sqsl = this.data.f_sqsl
    this.data.formData.f_ytsm = this.data.f_ytsm
    this.data.formData.f_omh6xzwv3ln = this.data.f_omh6xzwv3ln
    this.data.formData.f_shzt = '2'
    // this.data.formData.f_zdid = wx.getStorageSync('userInfoData').user.f_vznayoohyr6
    console.log('chakanshuju-------',this.data.formData)
    addData(this.data.formData).then(res => {
      wx.switchTab({
        url: '/pages/list/list' // 根据实际路径调整，需确保该路径已在 app.json 的 tabBar.list 中注册
      });
    }).catch(res => {

    })
  },
  viewDetail(e) {
    const id = e.currentTarget.dataset.id
    console.log(id)
    wx.navigateTo({
      url: `/pages/order/detail?id=${id}`
    })
  },
  changeText() {
    this.setData({
      message: this.data.message === 'Hello World' ? '你好 小程序' : 'Hello World'
    })
  },
  bindViewTap() {
    wx.navigateTo({
      url: '../logs/logs'
    })
  },
  onChooseAvatar(e) {
    const {
      avatarUrl
    } = e.detail
    const {
      nickName
    } = this.data.userInfo
    this.setData({
      "userInfo.avatarUrl": avatarUrl,
      hasUserInfo: nickName && avatarUrl && avatarUrl !== defaultAvatarUrl,
    })
  },
  onInputChange(e) {
    const nickName = e.detail.value
    const {
      avatarUrl
    } = this.data.userInfo
    this.setData({
      "userInfo.nickName": nickName,
      hasUserInfo: nickName && avatarUrl && avatarUrl !== defaultAvatarUrl,
    })
  },
  getUserProfile(e) {
    // 推荐使用wx.getUserProfile获取用户信息，开发者每次通过该接口获取用户个人信息均需用户确认，开发者妥善保管用户快速填写的头像昵称，避免重复弹窗
    wx.getUserProfile({
      desc: '展示用户信息', // 声明获取用户个人信息后的用途，后续会展示在弹窗中，请谨慎填写
      success: (res) => {
        console.log(res)
        this.setData({
          userInfo: res.userInfo,
          hasUserInfo: true
        })
      }
    })
  },
  //单选框切换 成品 原材料
  radioOnChange(e) {
    this.setData({
      'formData.f_splx': e.detail,
    })
    if(this.data.formData.f_splx == '1') {
      delete this.data.formData.f_hljt1f72ryh;
      this.setData({
        'formData.productName':'',
      })
    }else {
      delete this.data.formData.f_23ky2x5rnzi;
      this.setData({
        'formData.productName':'',
      })
    }
  },
    //单选框切换 兴源盛 站点
    radioOnChange1(e) {
      console.log(e)
      this.setData({
        'formData.f_j5kr0nqtf7k': e.detail,
      })
      if(this.data.formData.f_j5kr0nqtf7k == '1') {
         delete this.data.formData.f_of0cs7r9chu;
        this.setData({
          bdbzhandian:'2',
          selectedSite1:''
        })
      }else {
        // delete this.data.formData.f_23ky2x5rnzi;
        this.setData({
          bdbzhandian:'1',
          selectedSite1:''
        })
      }
    },
  // 申请调拨
  //获取产品列表
  chanpinliebiao() {
    const data = {
      pageSize: 200,
      filter: {
        "$and": [{
          "f_kclx": {
            "$eq": this.data.formData.f_splx
          }
        }]
      }
    }
    console.log('查看信息', data)
    getchanpin(data).then(res => {
      this.setData({
        products: res.data
      })
    }).catch(res => {

    })
  },
  showProductPicker() {
    console.log('cceshi')
    this.chanpinliebiao()
    // 实现产品选择逻辑
    this.setData({
      productPickerVisible: true
    })
  },
  // 确认选择
  onProductConfirm(e) {
    console.log(e)
    const value = e.detail.value.f_8ltnal6mewh
    const kcname = e.detail.value.f_xkc
    const spdata = e.detail.value
    if(this.data.formData.f_splx == "1") {
      this.setData({
        'formData.productName': value,
        'formData.f_23ky2x5rnzi': spdata,
        f_xkc: kcname,
        productPickerVisible: false,
        'formData.f_spid': e.detail.value.id
      })
    }else {
      this.setData({
        'formData.productName': value,
        'formData.f_hljt1f72ryh': spdata,
        f_xkc: kcname,
        productPickerVisible: false,
        'formData.f_spid': e.detail.value.id
      })
    }
   
  },


  // 关闭弹窗
  onProductCancel() {
    this.setData({
      productPickerVisible: false,
      productPickerVisibledb: false,
      productPickerVisiblecd: false,
      productPickerVisiblecp: false
    })
  },



  // 打开日期选择
  // 打开选择器时强制刷新时间戳
  openDatePicker(e) {
    console.log('查看时间', e)
    this.setData({
      currentDate: Number(new Date(this.data.applyDate || Date.now())),
      showDatePicker: true,
      sjxz: e.currentTarget.dataset.item
    })
  },

  // 确认选择
  onDateConfirm(e) {
    // 强制转换时间戳格式
    const rawTime = Number(e.detail)
    // 双重有效性校验
    const date = !isNaN(rawTime) ? new Date(rawTime) : new Date()

    // 防御性数值处理（解决NaN关键点）
    const pad = num => Math.max(0, Math.floor(num)).toString().padStart(2, '0')
    if (this.data.sjxz == 'dq') {
      this.setData({
        // 安全处理各时间单位
        applyDate: `${date.getFullYear()}-${pad(date.getMonth() + 1)}-${pad(date.getDate())}`,
        showDatePicker: false,

      });
    } else if (this.data.sjxz == 'qw') {
      this.setData({
        // 安全处理各时间单位
        applyDate2: `${date.getFullYear()}-${pad(date.getMonth() + 1)}-${pad(date.getDate())}`,
        showDatePicker: false,

      });
    } else if (this.data.sjxz == 'cd') {
      this.setData({
        // 安全处理各时间单位
        // applyDatecd: `${date.getFullYear()}-${pad(date.getMonth() + 1)}-${pad(date.getDate())}`,
        applyDatecd: `${date.getFullYear()}-${pad(date.getMonth() + 1)}-${pad(date.getDate())} ${pad(date.getHours())}:${pad(date.getMinutes())}:${pad(date.getSeconds())}`,
        showDatePicker: false,
      });
    }
  },

  // 关闭弹窗
  onDateCancel() {
    this.setData({
      showDatePicker: false
    });
  },
  // 文件上传回调（核心方法）
  afterRead(event) {
    const that = this
    const {
      file
    } = event.detail;
    // 当设置 mutiple 为 true 时, file 为数组格式，否则为对象格式
    wx.uploadFile({
      url: `${baseUrl}/attachments:create`,
      filePath: file.url,
      name: 'file',
      formData: {
        user: 'test'
      },
      header: {
        'Content-Type': 'multipart/form-data', // 必须添加
        'Authorization': `${wx.getStorageSync('userInfoData').token}`, // 按需添加
        'x-app': 'a_1z41svq3kx6'
      },
      success(res) {
        console.log('fanhui', JSON.parse(res.data).data)
        // console.log('查看data',that)
        // 上传完成需要更新 fileList
        const {
          fileList = []
        } = that.data;
        fileList.push({
          ...file,
          url: res.data
        });
        that.setData({
          fileList
        });
        // that.formData.f_dbfj.push(res.data)
        that.setData({
          formData: {
            ...that.data.formData,
            f_dbfj: [...(that.data.formData?.f_dbfj || []), JSON.parse(res.data).data]
          }
        })
      },
    });
  },
  // afterRead(e) {
  //   const { file } = e.detail;
  //   // 文件类型校验
  //   // if (!['image/jpeg', 'image/png'].includes(file.type)) {
  //   //   wx.showToast({
  //   //     title: '仅支持JPG/PNG格式',
  //   //     icon: 'none'
  //   //   })
  //   //   return
  //   // }
  //   console.log('来来来', `${baseUrl}/attachments:create`)
  //   console.log('来来来', e)
  //   // 上传进度处理
  //   wx.uploadFile({
  //     url: `${baseUrl}/attachments:create`,
  //     // url: 'http://47.94.92.148:9989/common/upload',
  //     filePath: file.file.path,
  //     name: 'file',
  //     formData: {
  //       user: 'test'
  //     },
  //     // header: {
  //     //   'Content-Type': 'multipart/form-data; boundary=----WebKitFormBoundaryUSBBEHGPNyf22DxT', // 必须添加
  //     //   'Authorization': `${wx.getStorageSync('token')}`, // 按需添加
  //     //   'x-app': 'a_1z41svq3kx6'
  //     // },
  //     // formData: { // 必须携带的附加参数
  //     //   'user': getApp().globalData.userInfo.id
  //     // },
  //     success: (res) => {
  //       console.log('执行没有',res)
  //       if (res.statusCode === 200) {
  //         // this.setData({
  //         //   files: this.data.files.concat([{
  //         //     url: JSON.parse(res.data).url, // 根据实际API调整
  //         //     name: `file_${Date.now()}`,
  //         //     status: 'done'
  //         //   }])
  //         // })
  //       }
  //     }
  //   })

  //   // // 进度监听
  //   // task.onProgressUpdate((res) => {
  //   //   console.log('上传进度:', res.progress)
  //   // })
  // },

  // 删除文件回调
  deleteFile(e) {
    const {
      index
    } = e.detail
    const files = this.data.files.filter((_, i) => i !== index)
    this.setData({
      files
    })
  },



  // 在page的onLoad中加入初始化保护
  onLoad() {
    this.setData({
      quanxian: wx.getStorageSync('quanxian')
    });

    //通过权限判断执行哪个函数
    if (this.data.quanxian == 'siji') {
      this.getOrderList()
    } else if (this.data.quanxian == 'zhandian') {
      this.getZhandian()
      // this.chanpinliebiao() //获取商品列表
    } else if (this.data.quanxian == 'chedui') {
      // this.dbsqlist() //获取调拨列表
      this.yssqlist() //获取运输列表
      this.dbcllist() //获取车队列表
      this.getcp('内部车队') //获取车队列表
    }
    if (this.data.formDatas.f_pdfl == '1') {
      this.setData({
        sqTxt: '运输申请',
        srTxt: '请选择运输列表'
      })
    }
    this.setData({
      timestamp: Date.now()
    }) // 强制刷新视图

  },

})